#include <iostream>
#include <string>
#include "Robot.h"
#include "Invocateur.h"
#include "./afficheur/AfficheurRobot.h"
#include "commandes/Commande.h"
#include "commandes/CommandeAvancer.h"
#include "commandes/CommandePeser.h"
#include "commandes/CommandePoser.h"
#include "commandes/CommandeEvaluerObs.h"
#include "commandes/CommandeSaisir.h"
#include "commandes/CommandeTourner.h"
#include "commandes/CommandeRencontrerObs.h"
#include "commandes/CommandeFiger.h"
#include "commandes/CommandeRepartir.h"

using namespace std;

int main() {

	Robot robot;
	AfficheurRobot aff;
	robot.attache(&aff);

	cout << "********** Robot **********\n" << endl;

	/* cout << "\t--> Avancer <--" << endl;
	 robot.avancer(1, 1);

	 cout << "\n\t--> Tourner <--" << endl;
	 robot.tourner("Sud");

	 cout << "\n\t--> Rencontrer Obstacle <--" << endl;
	 robot.rencontrerObstacle(new Obstacle(10));

	 cout << "\n\t--> Saisir <--" << endl;
	 robot.saisir(new Objet(5));

	 cout << "\n\t--> Peser <--" << endl;
	 robot.peser();

	 cout << "\n\t--> Poser <--" << endl;
	 robot.poser();

	 cout << "\n\t--> Poser Erreur <--" << endl;
	 robot.poser();

	 cout << "\n\t--> Peser Erreur <--" << endl;
	 robot.peser();

	 cout << "\n\t--> Evaluer Obstacle <--" << endl;
	 robot.evaluerObstacle();

	 cout << "\n\t--> Figer <--" << endl;
	 robot.figer();

	 cout << "\n\t--> Figer Erreur <--" << endl;
	 robot.figer();

	 cout << "\n\t--> Repartir <--" << endl;
	 robot.repartir();

	 cout << "\n\t--> Tourner <--" << endl;
	 robot.tourner("Nord"); */

	Invocateur inv;

	CommandeAvancer c1(&robot);
	CommandeSaisir c2(&robot);
	CommandeTourner c3(&robot);
	CommandeRencontrerObs c4(&robot);
	CommandePeser c5(&robot);
	CommandePoser c6(&robot);
	CommandeEvaluerObs c7(&robot);
	CommandeFiger c8(&robot);
	CommandeRepartir c9(&robot);

	inv.read();

	return 1;
}
